Schnorr-euchner expansions and their fast implementations

ABSTRACT

Methods and apparatus reducing or eliminating the number of multipliers in Schnorr-Euchner expansion algorithms are disclosed. Methods and apparatus for implementing Schnorr-Euchner expansion algorithms with a reduced number of multipliers or without any multipliers are also disclosed. Also disclosed is a Schnorr-Euchner expansion method for a multiple-input multiple-output communication system. The method includes receiving, by a plurality of input terminals, a plurality of input signals. The method also includes detecting a symbol transmitted by each input signal. The detection includes identifying a list of possible symbols that may be transmitted by each input signal. A cost value for each possible symbol is determined based on a cost function. The cost function is implemented without requiring a multiplier. The possible symbol with a lowest cost value is identified as the transmitted symbol.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims the benefit of U.S. Provisional Patent Application Ser. No. 61/882,919, entitle “Schnorr-Euchner Expansions without Multipliers,” filed on Sep. 26, 2013, and U.S. Provisional Patent Application Ser. No. 61/909,429, entitled “Schnorr-Euchner Expansion Methods,” filed on Nov. 27, 2013, both of which are incorporated herein by reference in their entirety as if fully set forth below.

TECHNICAL FIELD DISCLOSED

Embodiments of the disclosed technology generally relate to signal processing in multiple-input multiple-output (“MIMO”) signal transmission detection. More particularly, the disclosed technology relates to Schnorr-Euchner expansion algorithms implemented in MIMO communications.

BACKGROUND DISCLOSED

Multiple-Input Multiple-Output (“MIMO”) communication systems are becoming increasingly popular as a solution to increasing demands for higher data-rates and more reliable wireless communication systems. These systems can include multiple antennas at a transmitter side of the communication system and multiple antennas at the receiver side of the communication system. Each transmitter antenna can transmit a different signal at a common frequency through a different channel of the communication system. Each receiver antenna may receive each signal from the multiple transmitter-antennas. During transit, the transmitted signals may encounter different obstacles such that the frequency response of each channel is different. Thus, a common goal of conventional systems is to attempt to efficiently detect the transmitted symbols by determining the frequency response of each channel in the communication system.

Although the optimal solution to the MIMO symbol detection problem, Maximum Likelihood (“ML”) detection, is known, a brute-force ML detector implementation involves an exhaustive search over all possible transmitted symbol vectors. This approach is infeasible for hardware implementations when either a large signal constellation or a large number of transmit and receive antennas are employed. Hence, a goal of conventional systems is to design hardware for MIMO symbol detection that achieves comparable Bit-Error-Rate (“BER”) performance to the ML detector while having low hardware complexity and meeting throughput and latency requirements.

Some MIMO symbol detection systems employ methods of linear detection and Successive Interference Cancelation (SIC), Sphere Decoding (SD), Lattice Reduction (LR), and/or Complex Lenstra-Lenstra-Lovasz (CLLL) algorithms, among many other possibilities.

The Schnorr-Euchner (SE) method is a detection algorithm that searches a list of candidates for best guesses of the transmitted symbols. Each candidate is associated with a cost. The SE method ranks the candidates in the order of their cost function. The candidate with the smallest cost is considered as the best candidate. The SE method may be applied to or used in conjunction with, but not limited to, many algorithms including Sphere Decoding, lattice decoding applications, and may be used in other applications such as and global positioning systems (GPS). The SE method often includes two stages: an initialization stage and an expansion stage. The existing SE expansion method often requires multipliers to obtain the value of the cost function, where the multipliers can result in long critical path that lowers the maximum achievable frequency of a VLSI implementation. As a result, due to the use of multipliers, the existing SE method has a high cost in processing power and time. Therefore, there is a need for a more energy-efficient, accurate, and less complex SE method with enhanced performance. Various embodiments of the disclosed technology address these needs.

BRIEF SUMMARY DISCLOSED

The disclosed technology relates to SE expansions with reduced or without multipliers. One aspect of the disclosed technology relates to an SE expansion method for a multiple-input multiple-output communication system. The method may include receiving, by a plurality of input terminals, a plurality of input signals. Each input signal may transmit a symbol. The method may identify a list of possible symbols transmitted by each input signal. A cost value for each possible symbol may be determined based on a cost function. The cost function may be implemented without requiring a multiplier. The possible symbol with a lowest cost value may be identified as the transmitted symbol.

Another aspect of the disclosed technology relates to an apparatus that implements a Schnorr-Euchner expansion method without requiring a multiplier. The apparatus may include a plurality of input terminals each configured to receive a wireless signal. The apparatus may also include a processor in connection with the input terminals, where the processor may be configured to detect a symbol transmitted by each wireless signal. For instance, the processor may identify a list of possible symbols that may be transmitted by each wireless signal. The processor may determine a cost value for each possible symbol based on a cost function. The possible symbol with a lowest cost value may be identified as the transmitted symbol.

Yet another aspect of the disclosed technology relates to a multiple-input multiple-output communication system. The system may include a plurality of input terminals each configured to receive an input signal. The system may also include an integrated circuit implementing an Schnorr-Euchner expansion algorithm without requiring a multiplier. The integrated circuit may be configured to detect a symbol transmitted by each input signal. For instance, the circuit may estimate a list of possible symbols that may be transmitted by the input signal. The circuit may determine a cost value for each possible symbol based on a cost function. The possible symbol with a lowest cost value may be identified as the transmitted symbol.

Further, an exemplary embodiment of the disclosed technology provides a SE expansion that reduces the number of multipliers for the crossing multiplication. In one embodiment, the SE expansion method does not need any multiplier for l₁ cost function.

In another exemplary embodiment of the disclosed technology, an SE expansion eliminates the multiplier for l₂ cost function using low-complexity recursive equations.

Some exemplary embodiments of the disclosed technology provide a fast SE expansion for l₁ cost function for both real and complex models. The SE expansion eliminates the multiplier and is very simple to implement.

Another embodiment of the disclosed technology provides a complex SE expansion method for l₂ norm cost that generates the first 9 complex SE expansions with some simple conditions. By checking the conditions, the first 9 complex SE expansions can be uniquely determined, and the checking equations only require shifting and addition operations, which may be easily implemented in hardware.

These and other aspects of the disclosed technology are described in the Detailed Description disclosed below and the accompanying figures. Other aspects and features of embodiments of the disclosed technology will become apparent to those of ordinary skill in the art upon reviewing the following description of specific, exemplary embodiments of the disclosed technology in concert with the figures. While features of the disclosed technology may be discussed relative to certain embodiments and figures, all embodiments of the disclosed technology can include one or more of the features discussed herein. While one or more embodiments may be discussed as having certain advantageous features, one or more of such features may also be used with the various embodiments of the disclosed technology discussed herein. In similar fashion, while exemplary embodiments may be discussed below as system or method embodiments, it is to be understood that such exemplary embodiments may be implemented in various devices, systems, and methods of the disclosed technology.

BRIEF DESCRIPTION OF THE DRAWINGS

The following Detailed Description technology is better understood when read in conjunction with the appended drawings. For the purposes of illustration, there is shown in the drawings exemplary embodiments, but the subject matter is not limited to the specific elements and instrumentalities disclosed.

FIG. 1 provides a block diagram of a system model, in accordance with an exemplary embodiment of the disclosed technology.

FIG. 2 illustrates a hardware implementation of an SE expansion without early evaluation, in accordance with an exemplary embodiment of the disclosed technology.

FIG. 3 illustrates a hardware implementation of an SE expansion with early evaluation, in accordance with an exemplary embodiment of the disclosed technology.

FIG. 4 illustrates another hardware implementation of an SE expansion with early evaluation, in accordance with an exemplary embodiment of the disclosed technology.

FIG. 5 illustrates yet another hardware implementation of an SE expansion, in accordance with an exemplary embodiment of the disclosed technology.

FIG. 6 illustrates 2nd and 3rd SE solutions, in accordance with an exemplary embodiment of the disclosed technology.

FIG. 7 illustrates a decision boundary of 4th, 5th and 6th SE solutions, in accordance with an exemplary embodiment of the disclosed technology.

FIG. 8 illustrates layers of SE expansions, in accordance with an exemplary embodiment of the disclosed technology.

FIG. 9 illustrates a decision boundary of 4th SE solution, in accordance with an exemplary embodiment of the disclosed technology.

FIG. 10 illustrates a decision boundary of 5th SE solution, in accordance with an exemplary embodiment of the disclosed technology.

FIG. 11 illustrates a decision boundary of 6th SE solution, in accordance with an exemplary embodiment of the disclosed technology.

FIG. 12 illustrates a decision boundary of 8th SE solution, in accordance with an exemplary embodiment of the disclosed technology.

FIG. 13 illustrates a decision boundary of 9th SE solution, in accordance with an exemplary embodiment of the disclosed technology.

FIG. 14 is a flow diagram of a method, according to an exemplary method of the disclosed technology.

DETAILED DESCRIPTION

To facilitate an understanding of the principles and features of the disclosed technology, various illustrative embodiments are explained below. In particular, the disclosed technology is described in the context of systems and methods for MIMO communication systems. Certain embodiments of the disclosed technology may be applied to many wireless MIMO communication system standards known in the art, including, but not limited to, IEEE 802.11 (Wi-Fi), 4G, 3GPP, Long Term Evolution, Wi-MAX, HSPA+, and the like. Embodiments of the disclosed technology, however, are not limited to use in wireless MIMO communication systems. Rather, embodiments of the disclosed technology can be used for processing other MIMO communication systems, including, but not limited to, optical MIMO systems or other transmission systems having an architecture incorporating multiple transmitters and/or multiple transceivers.

The components described hereinafter as making up various elements of the disclosed technology are intended to be illustrative and not restrictive. Many suitable components or steps that would perform the same or similar functions as the components or steps described herein are intended to be embraced within the scope of the disclosed technology. Such other components or steps not described herein can include, but are not limited to, for example, similar components or steps that are developed after development of the disclosed technology.

FIG. 1 illustrates a system model 100 according to one embodiment of the disclosed technology. The system model 100 may include an input z, a system r, and an output y. In one embodiment, the SE method may have a mathematical representation as provided in the following equation:

c=|y−rz| ^(p),   (1)

where y and r≠0 may be known real numbers, z may be an unknown integer parameter, c may represent the cost of the SE algorithm, and integer p may denotes the l_(p)-norm.

When p=1, the above equation may compute an l₁-norm cost. When p=2, the above equation may compute an l₂-norm cost. The methods described herein may be applicable to other values of p. In some embodiments, there may exist a sequence of all possible z, i.e., {z⁽¹⁾, z⁽²⁾, . . . } (z^((n))≠z^((m)), ∀n≠m), costs for all possible z may be disclosed by {c^((n))=(y−rz^((n)))²}_(n=1) ^(∞) where costs are arranged in an ascend order such that c⁽¹⁾<c⁽²⁾<. . . .

Given r and y, the SE method disclosed herein may find K best candidates z in a fast way. For instance, the SE method may find the top k z's, i.e., {z^((n))}_(n=1) ^(k) such that their corresponding costs {c^((n))}_(n=1) ^(k) are smallest in a sequential way.

1. Conventional SE Method 1.1 Real Case

In real domain, to achieve the goal with low complexity, the SE method may calculate z^((n)) and c^((n)) with two stages—the initial stage and the expansion stage. The initial stage of the SE method may obtain z⁽¹⁾ and initializes a step variable s⁽¹⁾ to help determine the next z as

z ⁽¹⁾ =┌y/r┘,   (2)

s ⁽¹⁾ =sgn(y/r−z ⁽¹⁾),   (3)

c ⁽¹⁾ =|y−rz ⁽¹⁾|^(p),   (4)

where ┌·┘ denotes the rounding function.

At the expansion stage, the SE method may expand z^((n)), n≧2 using the following recursive formula:

z ^((n)) =z ^((n−1)) +s ^((n−1)),   (5)

s ^((n)) =−s ^((n−1)) −sgn(s ^((n−1))),   (6)

c ^((n)) =|y−rz ^((n))|^(p),   (7)

where s^((n)) is a step variable to help determine the next z^((n+1)).

Table 1 illustrates a conventional SE method. The main complexity of the SE expansion is in Eq. (7). In the conventional SE method, two multipliers are required for p=2 and one multiplier is required for p=1. Since multipliers usually result in much longer latency compared to adders and multiplexers in hardware implementation, especially when the bit width is large, a raw implementation of Eq. (7) can become a critical path that lowers the maximum achievable frequency, i.e., maximum throughput of VLSI implementation.

TABLE 1 Original SE method SE Initialization Input: y, r, p Output: z⁽¹⁾, s⁽¹⁾, c⁽¹⁾ Line 1 z⁽¹⁾ = ┌y/r┘ Line 2 s⁽¹⁾ = sgn(y/r − z⁽¹⁾) Line 3 c⁽¹⁾ = | y − rz⁽¹⁾ |^(p) SE Expansion at z^((n)), n ≧ 2 Input: y, r, p, z^((n − 1)), s^((n − 1)) Output: z^((n)), s^((n)), c^((n)) Line 1 z^((n)) = z^((n − 1)) + s^((n − 1)) Line 2 s^((n)) = −s^((n − 1)) − sgn(s^((n − 1))) Line 3 c^((n)) = | y − rz^((n)) |^(p)

1.2 Complex Case

Unlike the SE expansion in real domain that can be easily computed using recursive equations, existing complex SE methods require a candidate list that contains all possible next expansions. For instance, to find z^((n)), n>1, existing complex SE method maintains a list of possible SE expansions

and classifies the expansions into two categories:

-   Type I, where the imaginary part of z^((n)) is the same as the     imaginary part of z⁽¹⁾. -   Type II, otherwise.

If a Type I expansion is chosen as the next expansion of z^((n)), both the real and imaginary SE expansions may be executed to guarantee that the next smallest solution is in the candidate list

while for a Type II expansion, only imaginary SE expansion may be used. An example of the existing complex SE method is given in Table 2, where s^((n)) is an auxiliary variable to help determine the SE expansion in real or imaginary direction.

TABLE 2 Original Complex SE method Complex SE Initialization Input: y, r Output:

⁽¹⁾ Line 1 z = ┌y/r┘ Line 2 s = sgn(y/r − z) Line 3 c =| y − rz |₁ Line 4

⁽¹⁾ = {(z,c,s)} Note, for complex arguments, sgn operates independently on the real and imaginary parts. Complex SE Expansion at z^((n)), n ≧ 1 Input:

[z⁽¹⁾], y, r,

^((n)) Output: z^((n)), s^((n)), c^((n)),

^((n+1)) Line 1 (z^((n)), c^((n)), s^((n))) = arg min_(c)∀(z, c, s) ε

^((n)) Line 2

^((n+1)) =

^((n))/{(z^((n)), c^((n)), s^((n)))} Line 3 z₁ = z^((n)) + I[s^((n))]j Line 4 s₁ =

[s^((n))] + (−I[s^((n))] − sgn(I[s^((n))]))j Line 5 c₁ =| y − rz₁ |₁ Line 6

^((n + 1)) =

^((n + 1)) ∪ {(z₁, s₁, c₁)} Line 7 If I[z^((n))] = I[z⁽¹⁾] then Line 8 z₂ = z^((n)) +

[s^((n))] Line 9 s₂ = −

[s^((n))] − sgn (

 [s^((n))]) + I[s^((n))]j Line 10 c₂ =| y − rz₂ |₁ Line 11

^((n+1)) =

^((n+1)) ∪ {(z₂, s₂, c₂)} Line 12 End if

Complex SE method has been discussed in L. Zhang, H. Lei, X. Zhang, and D. Yang, “Efficient complex sphere decoding framework for linear dispersion space-time block codes,” in Proc. IEEE Int. Symp. on Personal, Indoor and Mobile Radio Commun. (PIMRC), Athens, Greece, September 2007, pp. 1-4. Complex SE method has also been discussed in M. Mahdavi and M. Shabany, “Novel MIMO detection algorithm for high-order constellations in the complex domain,” IEEE Trans. VLSI Syst., vol. 21, no. 5, pp. 834-847, May 2013.

2. Multiplier Reduction 1 (MR1): Updating the Crossing Multiplication Recursively

In one aspect, the disclosed technology improves the existing SE method by eliminating or reducing the use of multipliers. According to one embodiment of the disclosed technology, rz^((n)) in Eq. (7) may be reduced as follows to avoid the use of multipliers. For instance, by introducing an auxiliary variable A^((n))=rz^((n)), rz^((n)) may be represented by the following recursive equation:

$\begin{matrix} \begin{matrix} {A^{(n)} = {r\left( {z^{({n - 1})} + s^{({n - 1})}} \right)}} \\ {= {r\left( {z^{({n - 2})} + s^{({n - 2})} - s^{({n - 2})} - {{sgn}\left( s^{({n - 2})} \right)}} \right)}} \\ {{= {A^{({n - 2})} + {r\; {{sgn}\left( s^{({n - 1})} \right)}}}},} \end{matrix} & (8) \end{matrix}$

which is based on the fact that sgn(s^((n−2)))=−sgn(s^((n−1))).

As a result, c^((n)) may be recursively computed using the following formula

c ^((n)) =|y−A ^((n))|^(p).   (9)

Table 3 illustrates one embodiment of the SE method according to the disclosed technology.

TABLE 3 Proposed SE method with MR1 (without early evaluation). SE Initialization Input: y, r, p Output: z⁽¹⁾ , s⁽¹⁾, c⁽¹⁾ , A⁽⁰⁾, A⁽¹⁾ Line 1 z⁽¹⁾ = ┌y/r┘ Line 2 s⁽¹⁾ = sgn(y/r − z⁽¹⁾) Line 3 A⁽⁰⁾ = A⁽¹⁾ = rz⁽¹⁾ Line 4 c⁽¹⁾| = y A⁽¹⁾ |^(p) SE Expansion at z^((n)), j ≧ 2 Input: y, r, p, z^((n−1)), s^((n−1)), A^((n−2)) Output: z^((n)), s^((n)), c^((n)), A^((n)) Line 1 z^((n)) = z^((n−1)) + s^((n−1)) Line 2 s^((n)) = −s^((n−1)) − sgn(s^((n−1))) Line 3 A^((n)) = A^((n−2)) + rsgn(s^((n−1))) Line 4 c^((n)) =| y − A^((n)) |^(p)

As illustrated in Table 3, at the initial step, A⁽⁰⁾=A⁽¹⁾=rz⁽¹⁾ may ensure that the SE method described herein reaches the exact solution as the original SE method. In Table 3, lines 3-4 may be regarded as the critical path of the SE expansion, which may lower the maximum frequency.

To shorten the critical path, Table 4 illustrates another embodiment of the SE method where an early evaluation (EE) may be performed on A^((n)). As shown in Table 4, the early evaluation may be calculated in the initial stage or previous expansions.

TABLE 4 Proposed SE method with MR1 (with early evaluation). SE Initialization Input: y, r, p Output: z⁽¹⁾, s⁽¹⁾, c⁽¹⁾, A⁽²⁾, A⁽³⁾ Line 1 z⁽¹⁾ = ┌y/r┘ Line 2 s⁽¹⁾ = sgn(y/r − z⁽¹⁾) Line 3 A⁽²⁾ = r(z⁽¹⁾ + s⁽¹⁾) Line 4 A⁽³⁾ = r(z⁽¹⁾ − s⁽¹⁾) Line 5 c⁽¹⁾ =| y − rz⁽¹⁾ |^(p) SE Expansion at z^((n)), j ≧ 2 Input: y, r, p, z^((n −) ¹⁾, s^((n −) ¹⁾, A^((n)) Output: z^((n)), s^((n)), c^((n)), A^((n + 2)) Line 1 z^((n)) = z^((n −) ¹⁾ + s^((n −) ¹⁾ Line 2 s^((n)) = −s^((n −) ¹⁾ − sgn(s^((n −) ¹⁾) Line 3 A^((n + 2)) = A^((n)) + rsgn(s^((n −) ¹⁾) Line 4 c^((n)) =| y − A^((n)) |^(p)

The multiplication with sgn(s^((n−1))) in Eq. (8) and the absolute operation for p=1 in Eq. (9) may be efficiently implemented without the use of any multiplier. For instance, these operations may be implemented simply by using a multiplexer. Therefore, in this embodiment, for p=1, no multiplier is required for the proposed SE expansion. For instance, FIGS. 2-3 each illustrate an exemplary hardware implementation of the SE method described herein where no multiplier is used. Specifically, FIG. 2 illustrates a hardware implementation of the SE method represented by Table 3 without early evaluation, in which the critical path is indicated by dashed lines. FIG. 3 illustrates a hardware implementation of the SE method represented by Table 4 with early evaluation. As shown in FIGS. 2-3, additional input and output are included, such as A^((n−1)) in FIG. 2 and A^((n+1)) in FIG. 3, such that the output may be directly connected to the input of the next (n+1)st expansion without any control code.

Further, for p=2, the number of multipliers may be reduced to one because of the square operation.

In some embodiments, a further improvement of the SE method may reduce the multiplier in r sgn(s^((n−1))) by defining R^((n−1))=r sgn(s^((n−1))) and using the recursive equation R(n)=−R(n−1). FIG. 4 illustrates an exemplified hardware implementation of the SE expansion in this regard.

3. Multiplier Reduction 2 (MR2): Calculating l₂-norm Recursively

In one aspect, the disclosed technology improves the existing SE method by eliminating the use of multipliers when calculating l₂-norm. For instance, the calculation of l₂-norm based on Eq. (7) with p=2 may be disclosed as follows:

$\begin{matrix} \begin{matrix} {c^{(n)} = \left( {y - {rz}^{({n - 1})} - {rs}^{({n - 1})}} \right)^{2}} \\ {= \left( {y - {rz}^{({n - 2})} - {r\; {{sgn}\left( s^{({n - 1})} \right)}}} \right)^{2}} \\ {= {\left( {y - {rz}^{({n - 2})}} \right)^{2} + r^{2} - {{{sgn}\left( s^{({n - 1})} \right)}\left( {{2\; {ry}} - {2\; r^{2}z^{({n - 2})}}} \right)}}} \\ {{= {c^{({n - 2})} + c - {2\; {{sgn}\left( s^{({n - 1})} \right)}\left( {D - B^{({n - 2})}} \right)}}},} \end{matrix} & (10) \end{matrix}$

where B^((n−2))=r²z^((n−2)), C=r², and D=ry.

Similar to A^((n)), B^((n)) may be determined based on the following recursive equation:

$\begin{matrix} \begin{matrix} {B^{(n)} = {r^{2}z^{({n - 2})}}} \\ {= {r^{2}\left( {z^{({n - 3})} + s^{({n - 3})}} \right)}} \\ {= {r^{2}\left( {z^{({n - 4})} + s^{({n - 4})} - s^{({n - 4})} - {{sgn}\left( s^{({j - n})} \right)}} \right)}} \\ {= {B^{({n - 2})} + {C\; {{{sgn}\left( s^{({n - 1})} \right)}.}}}} \end{matrix} & (11) \end{matrix}$

Table 5 illustrates an exemplary pseudo code of the SE method according to this embodiment.

TABLE 5 Proposed SE with MR2 for p = 2 SE Initialization Input: y, r Output: z⁽¹⁾ , s⁽¹⁾, c⁽⁰⁾, c⁽¹⁾, B⁽⁰⁾, B⁽¹⁾, C, D Line 1 z⁽¹⁾ = ┌y/r┘ Line 2 s⁽¹⁾ = sgn(y/r − z⁽¹⁾) Line 3 B⁽⁰⁾ = B⁽¹⁾ = r²z⁽¹⁾ Line 4 c⁽⁰⁾ = c⁽¹⁾ = (y − rz⁽¹⁾)² Line 5 C = r² Line 6 D = ry SE Expansion at z^((j)), j ≧ 2 Input: z^((n − 1)), s^((n − 1)), c^((n − 2)), B^((n − 2)), C, D Output: z^((n)), s^((n)), c^((n)), B^((n)) Line 1 z^((n)) = z^((n − 1)) + s^((n − 1)) Line 2 s^((n)) = −s^((n − 1)) − sgn(s^((n − 1))) Line 3 B^((n)) = B^((n −) ²⁾ + Csgn(s^((n − 1))) Line 4 c^((n)) = c^((n − 2)) + C − 2sgn(s^((n − 1)))(D − B^((n − 2)))

In Table 5, for the initial step, B⁽⁰⁾=B⁽¹⁾=r²z⁽¹⁾ and c⁽⁰⁾=c⁽¹⁾ may yield the same results as the original SE method in Eqs. (2)-(7).

Further, as illustrated in Table 5, C=r² and D=ry may be constants in the expansion stage, and their values may be pre-computed in the initialization stage. Further, as illustrated in Table 5, the multiplication with 2 may be implemented using a shift register without any multiplier. As a result, this embodiment of the SE expansion method may not require any multiplier in calculating c^((n)) and B^((n)) for p=2. FIG. 5 illustrates a hardware implementation of the SE expansion according to this embodiment where no multiplier is used therein.

In another embodiment, the l₂-norm may be calculated as follows:

$\begin{matrix} {{c^{(n)} = {{y^{2} - {2\; {yrz}^{(n)}} + {r^{2}\left( z^{(n)} \right)}^{2}} = {y^{2} - E^{(n)} + F^{(n)}}}},} & (12) \end{matrix}$

where E^((n))=2yrz^((n)) and F^((n))=r²(z^((n)))², both of which can be recursively updated according to the following formulas:

$\begin{matrix} \begin{matrix} {E^{(n)} = {2\; {{yr}\left( {z^{({n - 2})} + {{sgn}\left( s^{({n - 1})} \right)}} \right)}}} \\ {{= {E^{({n - 2})} + {2\; D\; {{sgn}\left( s^{({n - 1})} \right)}}}},} \end{matrix} & (13) \\ \begin{matrix} {F^{(n)} = {r^{2}\left( {z^{({n - 2})} + {{sgn}\left( s^{({n - 1})} \right)}} \right)}^{2}} \\ {= {{r^{2}\left( z^{({n - 2})} \right)}^{2} + {2r^{2}z^{({n - 2})}{{sgn}\left( s^{({n - 1})} \right)}} + r^{2}}} \\ {= {F^{({n - 2})} + {2\; B^{({n - 2})}{{sgn}\left( s^{({n - 1})} \right)}} + {C.}}} \end{matrix} & (14) \end{matrix}$

In this embodiment, the SE method again may be implemented without multipliers. In some aspects, the early evaluation (EE) method may be applied to E^((n)) and F^((n)) to reduce the length of critical path.

3.1 Cases for p>2

In some embodiments, for p>2, multipliers may be reduced or eliminated according to similar concept presented above. For example, when p=3, G^((n))=(y−rz^((n)))³ may be introduced and determined as follows:

$\begin{matrix} \begin{matrix} {G^{(n)} = \left( {y - {rz}^{({n - 1})} - {rs}^{({n - 1})}} \right)^{3}} \\ {= \left( {y - {rz}^{({n - 2})} - {{r{sgn}}\left( s^{({n - 1})} \right)}} \right)^{3}} \\ {= {\left( {y - {rz}^{({n - 2})}} \right)^{3} - {3\left( {y - {rz}^{({n - 2})}} \right)^{2}r\; {{sgn}\left( s^{({n - 1})} \right)}} +}} \\ {{{3\left( {y - {rz}^{({n - 2})}} \right)r^{2}} - \left( {{r{sgn}}\left( s^{({n - 1})} \right)} \right)^{3}}} \\ {{= {G^{({n - 2})} - {H^{({n - 2})}{{sgn}\left( s^{({n - 1})} \right)}} + {3\; {yr}^{2}} - {3\; r^{3}z^{({n - 2})}} - {r^{3}{{sgn}\left( s^{({n - 1})} \right)}}}},} \end{matrix} & (15) \end{matrix}$

where H^((n−2))=3(y−rz^((n−2)))²r, which may be computed in a recursive way similar to SE method discussed above without any multipliers. Therefore, c^((n))=|y−rz^((n))|³=|E^((n))| may be computed without any multipliers.

4. Fast Schnorr-Euchner Expansions for l₁ Norm 4.1 Real Case

According to one embodiment of the disclosed technology, a fast SE expansion for l₁ cost function may be developed based on the following recursive equations:

c ^((n)) =c ^((n−2)) +|r|  (16)

z ^((n)) =z ^((n−2))+δ^((n))   (17)

with δ^((n))=sgn(z^((n−2))−z⁽¹⁾)=−δ^((n−1)).

Table 6 illustrates an exemplified pseudo code of the SE method according to this embodiment. In this embodiment, the SE expansion method may eliminate the multiplier and is very simple to implement.

TABLE 6 Proposed Fast SE for cost. SE Initialization Input: y, r Output: z⁽⁰⁾, z⁽¹⁾, c⁽⁰⁾, c⁽¹⁾, δ⁽¹⁾ Line 1 z⁽⁰⁾ = z⁽¹⁾ = ┌y/r┘ Line 2 δ⁽¹⁾ = sgn(z⁽¹⁾ − y/r) Line 3 c⁽¹⁾ =| y − rz⁽¹⁾ | Line 4 c⁽⁰⁾ = −c⁽¹⁾ SE Expansion at z^((j)), j ≧ 2 Input: r, z^((n − 2)), z^((n − 1)), c^((n − 2)), c^((n −) ¹⁾, δ^((n −) ¹⁾ Output: z^((n −) ¹⁾, z^((n)), c^((n −) ¹⁾, c^((n)), δ^((n)) Line 1 δ^((n)) = −δ^((n −) ¹⁾ Line 2 z^((n)) = z^((n −) ¹⁾ + δ^((n)) Line 3 c^((n)) = c^((n −) ²⁾ + | r |

As illustrated in Table 6, for the initialization, with z⁽⁰⁾=┌y/r┘ and c⁽⁰⁾=−|y−rz⁽¹⁾|, the SE method may yield the exactly same sequence of z^((j)) and c^((j)) as the original SE method.

Table 7 illustrates an exemplified pseudo code of the SE method using early evaluation. Here, the performance of the SE method may be improved by performing early evaluation on z^((n)) by calculating δ^((n)) in earlier stage.

TABLE 7 Proposed Fast SE for l₁ cost with early evaluation. SE Initialization Input: y, r Output: z⁽⁰⁾, z⁽¹⁾, c⁽⁰⁾, c⁽¹⁾, δ⁽²⁾ Line 1 z⁽⁰⁾ = z⁽¹⁾ = ┌y/r┘ Line 2 δ⁽²⁾ = sgn(y/r − z⁽¹⁾) Line 3 c⁽¹⁾ =| y − rz⁽¹⁾ | Line 4 c⁽⁰⁾ = −c⁽¹⁾ SE Expansion at z^((j)) , j ≧ 2 Input: r, z^((n − 2)), z^((n − 1)), c^((n − 2)), c^((n − 1)), δ^((n)) Output: z^((n −) ¹⁾, z^((n)), c^((n − 1)), c^((n)), δ^((n + 1)) Line 1 δ^((n + 1)) = −δ^((n)) Line 2 z^((n)) = z^((n − 1)) + δ^((n)) Line 3 c^((n)) = c^((n − 2)) + | r |

In some embodiments, by exploiting δ^((n))=sgn(z^((n−2))−z^((n−1))), n≧3, δ^((n)) may be removed from SE method for l₁ cost at the cost of possible longer latency.

4.2 Complex Case

According to one embodiment of the disclosed technology, a complex SE expansion method for l₁ norm cost may be implemented in a manner such that by checking some simple conditions, the sequence of SE expansion for l₁ cost may be uniquely determined without maintaining the candidate list.

In this embodiment, the cost function may be computed according to the following equation:

$\begin{matrix} {c = {{y - {rz}}}_{1}} \\ {{= {{{{\lbrack y\rbrack} - {r\; {\lbrack z\rbrack}}}} + {{{I\lbrack y\rbrack} - {r\; {I\lbrack z\rbrack}}}}}},} \end{matrix}$

Where y may be a complex number, r≠0 is a real number, z is an unknown Gaussian integer in the form of

+j

,

is the integer set, j=√{square root over (−1)}, c is the cost, and

[·] and I[·] denote the real and imaginary parts of a variable, respectively.

The first SE solution may be obtained as

z ⁽¹⁾ =┌y/r┘,

c ⁽¹⁾ =|y−rz ⁽¹⁾|₁,

In this embodiment, by denoting Δ₁=|

[y]−r

[z⁽¹⁾]|, Δ₂=|I[y]−rI[z⁽¹⁾]|, δ₁=sgn(

[y]/r−

[z⁽¹⁾]), and δ₂=sgn(I[y]/r−rI[z⁽¹⁾]), SE solutions may be computed according to the following propositions.

Proposition 1

The 2nd and 3rd SE solutions may be determined as

$\begin{matrix} {z^{(2)} = \left\{ \begin{matrix} {{z^{(1)} + \delta_{1}},} & {{{if}\mspace{14mu} \Delta_{1}} > \Delta_{2}} \\ {{z^{(1)} + {\delta_{2}j}},} & {o.w.} \end{matrix} \right.} & (18) \\ {c^{(2)} = \left\{ \begin{matrix} {{{r} - \Delta_{1} + \Delta_{2}},} & {{{if}\mspace{14mu} \Delta_{1}} > \Delta_{2}} \\ {{\Delta_{1} + {r} - \Delta_{2}},} & {o.w.} \end{matrix} \right.} & (19) \\ {z^{(3)} = \left\{ \begin{matrix} {{z^{(1)} + {\delta_{2}j}},} & {{{if}\mspace{14mu} \Delta_{1}} > \Delta_{2}} \\ {{z^{(1)} + \delta_{1}},} & {o.w.} \end{matrix} \right.} & (20) \\ {c^{(3)} = \left\{ \begin{matrix} {{\Delta_{1} + {r} - \Delta_{2}},} & {{{if}\mspace{14mu} \Delta_{1}} > \Delta_{2}} \\ {{{r} - \Delta_{1} + \Delta_{2}},} & {o.w.} \end{matrix} \right.} & (21) \end{matrix}$

FIG. 6 illustrates the 2nd and 3rd SE solutions determined according to Proposition 1. In FIG. 6, × denotes y/r.

Proposition 2

If |r|<2Δ₁+2Δ₂, the 4th SE solution may be determined by

z ⁽⁴⁾ =z ⁽¹⁾+δ₁+δ₂ j,   (22)

c ⁽⁴⁾=2|r|−Δ ₁−Δ₂,   (23)

and the 5th and 6th SE solutions are in the set

z⁽⁵⁾, z⁽⁶⁾ ∈ {z⁽¹⁾−δ₁, z⁽¹⁾−δ₂j}  (24)

with the same cost |r|+Δ₁+Δ₂. Otherwise, if |r|>2Δ₁+2Δ₂, the 4th and 5th SE solutions are in the set

z⁽⁴⁾, z⁽⁵⁾ ∈ {z⁽¹⁾−δ₁, z⁽¹⁾−δ₂j}  (25)

with the cost |r|+Δ₁+Δ₂, and the 6th SE solution is given by

z ⁽⁶⁾ =z ⁽¹⁾+δ₁+δ₂ j,   (26)

c ⁽⁶⁾=2|r|−Δ ₁−Δ₂.   (27)

FIG. 7 provides an illustration of the decision boundary |r|<2Δ₁+2Δ₂ according to this embodiment, where the possible solutions are shown by solid circles and x sign.

A sequence of complex SE expansions for l₁ norm based on the conditions Δ₁

Δ₂ and |r|

2Δ₁+2Δ₂ may be determined.

Proposition 3

If |r|<2Δ₁+2Δ₂, the sequence of complex SE expansions may be determined by

z⁽¹⁾, z⁽²⁾, z⁽³⁾, z⁽⁴⁾,   layer 1

{z⁽¹⁾−δ₁, z⁽¹⁾−δ₂j}, {z⁽²⁾+δ_(2,1), z⁽²⁾+δ_(2,2)j}, {z⁽³⁾+δ_(3,1), z⁽³⁾+δ_(3,2)j}, {z⁽⁴⁾+δ₁, z⁽⁴⁾+δ₂j},   layer 2

{z ⁽¹⁾ −iδ ₁ −kδ ₂ j|∀i+k=l−1, i≧0, k≧0}, {z ⁽²⁾ +iδ _(2,1) +kδ _(2,2) j|∀i+k=l−1, i≧0, k≧0}, {z ⁽³⁾ +iδ _(3,1) +kδ _(3,2) j|∀i+k=l−1, i≧0, k≧0}, {z ⁽⁴⁾ +iδ ₁ +kδ ₂ j|∀i+k=l−1, i≧0, k≧0},   layer l

and the costs are

c⁽¹⁾, c⁽²⁾, c⁽³⁾, c⁽⁴⁾,   layer 1

c⁽¹⁾+|r|, c⁽²⁾+|r|, c⁽³⁾+|r|, c⁽⁴⁾+|r|,   layer 2

c⁽¹⁾+(l−1)|r|, c⁽²⁾+(l−1)|r|, c⁽³⁾+(l−1)|r|, c⁽⁴⁾+(l−1)|r|,   layer l

where the expansions with smaller layers may have smaller cost than those with higher layers, the SE solutions may be grouped in {·} if they have the same cost, and

$\begin{matrix} {\delta_{2,1} = \left\{ \begin{matrix} {\delta_{1},} & {{{if}\mspace{14mu} \Delta_{1}} > \Delta_{2}} \\ {{- \delta_{1}},} & {o.w.} \end{matrix} \right.} & (28) \\ {\delta_{2,2} = \left\{ \begin{matrix} {{- \delta_{2}},} & {{{if}\mspace{14mu} \Delta_{1}} > \Delta_{2}} \\ {\delta_{2},} & {o.w.} \end{matrix} \right.} & (29) \\ {\delta_{3,1} = \left\{ \begin{matrix} {{- \delta_{1}},} & {{{if}\mspace{14mu} \Delta_{1}} > \Delta_{2}} \\ {\delta_{1},} & {o.w.} \end{matrix} \right.} & (30) \\ {\delta_{3,2} = \left\{ \begin{matrix} {\delta_{2},} & {{{if}\mspace{14mu} \Delta_{1}} > \Delta_{2}} \\ {{- \delta_{2}},} & {o.w.} \end{matrix} \right.} & (31) \end{matrix}$

If |r|>2Δ₁+2Δ₂, the sequence of complex SE expansions may be given by

z⁽¹⁾,   layer 0

z⁽²⁾, z⁽³⁾, z⁽⁴⁾, z⁽⁵⁾, z⁽⁶⁾   layer 1

{z⁽²⁾+δ_(2,1), z⁽²⁾+δ_(2,2)j}, {z⁽³⁾+δ_(3,1), z⁽³⁾+δ_(3,2)j}, {z⁽¹⁾−2δ₁, z⁽¹⁾−δ₁−δ₂j, z⁽¹⁾−2δ₂j}, {z⁽⁴⁾+δ₁, z⁽⁴⁾+δ₂j},   layer 2

{z ⁽²⁾ +iδ _(2,1) +kδ _(2,2) j|∀i+k=l−1, i≧0, k≧0}, {z ⁽³⁾ +iδ _(3,1) +kδ _(3,2) j|∀i+k=l−1, i≧0, k≧0}, {z ⁽¹⁾ −iδ ₁ −kδ ₂ j|∀i+k=l, i≧0, k≧0}, {z ⁽⁶⁾ +iδ ₁ +kδ ₂ j|∀i+k=l−1, i≧0, k≧0},   layer l

and the costs are

c⁽¹⁾,   layer 0

c⁽²⁾, c⁽³⁾, c⁽⁴⁾, c⁽⁵⁾, c⁽⁶⁾,   layer 1

c⁽²⁾+|r|, c⁽³⁾+|r|, c⁽¹⁾+2|r|, c⁽⁶⁾+|r|,   layer 2

c⁽²⁾+(l−1)|r|, c⁽³⁾+(l−1)|r|, c⁽¹⁾+l|r|, c⁽⁶⁾+(l−1)|r|,   layer l

FIG. 8 illustrates exemplary layers of SE expansions when |r|<2Δ₁+2Δ₂ according to this embodiment.

4.3 SE Methods with Bound Constraint

According to some embodiments of the disclosed technology, the value of z may be bounded as follows:

c=|y−rz|, s.t., a≦z≦b,   (32)

where a and b are integers indicating the lower and upper bound of z. The disclosed technology may implement the SE method with the bound constraint.

5. Fast SE Expansion for l₂ Norm

According to one embodiment of the disclosed technology, a complex SE expansion method for l₂ norm cost may generate the first 9 complex SE expansions with some simple conditions. By checking the conditions, the first 9 complex SE expansions may be uniquely determined. The checking equations may only require shifting and addition operations, which are very easy to be implemented in hardware.

In this embodiment, the cost function may be computed according to the following equation:

$\begin{matrix} {c = {{y - {rz}}}^{2}} \\ {{= {\left( {{\lbrack y\rbrack} - {r\; {\lbrack z\rbrack}}} \right)^{2} + \left( {{I\lbrack y\rbrack} - {r\; {I\lbrack z\rbrack}}} \right)^{2}}},} \end{matrix}$

Where y may be a complex number, r≠0 is a real number, z is an unknown Gaussian integer in the form of

+j

,

is the integer set, j=√{square root over (−1)}, c is the cost, and

[·] and I[·] denote the real and imaginary parts of a variable, respectively.

The first SE solution may be obtained as

z ⁽¹⁾ =┌y/r┘,

c ⁽¹⁾ =|y−rz ⁽¹⁾|²,

To simplify the equations in deriving the following 2nd to 9th SE solutions, denote Δ₁=|

[y]−r

[z⁽¹⁾]|, Δ₂=|I[y]−rI[z⁽¹⁾]|, δ₁=sgn(

[y]/r−

[z⁽¹⁾[), and δ₂=sgn(I[y]/r−I[z⁽¹⁾]). The 2nd to 9th SE solutions may be determined according to the following propositions:

Proposition 4

The 2nd and 3rd SE solutions may be determined as

$\begin{matrix} {z^{(2)} = \left\{ \begin{matrix} {{z^{(1)} + \delta_{1}},} & {{{if}\mspace{14mu} \Delta_{1}} > \Delta_{2}} \\ {{z^{(1)} + {\delta_{2}j}},} & {o.w.} \end{matrix} \right.} & (33) \\ {c^{(2)} = \left\{ \begin{matrix} {{\left( {{r} - \Delta_{1}} \right)^{2} + \Delta_{2}^{2}},} & {{{if}\mspace{14mu} \Delta_{1}} > \Delta_{2}} \\ {{\Delta_{1}^{2} + \left( {{r} - \Delta_{2}} \right)^{2}},} & {o.w.} \end{matrix} \right.} & (34) \\ {z^{(3)} = \left\{ \begin{matrix} {{z^{(1)} + {\delta_{2}j}},} & {{{if}\mspace{14mu} \Delta_{1}} > \Delta_{2}} \\ {{z^{(1)} + \delta_{1}},} & {o.w.} \end{matrix} \right.} & (35) \\ {c^{(3)} = \left\{ \begin{matrix} {{\Delta_{1}^{2} + \left( {{r} - \Delta_{2}} \right)^{2}},} & {{{if}\mspace{14mu} \Delta_{1}} > \Delta_{2}} \\ {{\left( {{r} - \Delta_{1}} \right)^{2} + \Delta_{2}^{2}},} & {o.w.} \end{matrix} \right.} & (36) \end{matrix}$

An illustration of the 2nd and 3rd SE solutions is given in FIG. 6.

Without loss of generality, the following propositions are based on the assumption that Δ₁>Δ₂.

Proposition 5

The 4th SE solution is given by

$\begin{matrix} {z^{(4)} = \left\{ \begin{matrix} {{z^{(1)} + \delta_{1} + {\delta_{2}j}},} & {{{{if}\mspace{14mu} 2\; \Delta_{1}} + {4\; \Delta_{2}}} > {r}} \\ {{z^{(1)} - {\delta_{2}j}},} & {o.w.} \end{matrix} \right.} & (37) \\ {c^{(4)} = \left\{ \begin{matrix} {{\left( {{r} - \Delta_{1}} \right)^{2} + \left( {{r} - \Delta_{2}} \right)^{2}},} & {{{{if}\mspace{14mu} 2\; \Delta_{1}} + {4\; \Delta_{2}}} > {r}} \\ {{\Delta_{1}^{2} + \left( {{r} + \Delta_{2}} \right)^{2}},} & {o.w.} \end{matrix} \right.} & (38) \end{matrix}$

FIG. 9 provides an illustration of a decision boundary of the 4th SE solution according to this proposition, where the possible solutions for the 4th are illustrated by x sign.

Proposition 6

If 2Δ₁+4Δ₂>|r|, the 5th SE solution may be determined as

z ⁽⁵⁾ =z ⁽¹⁾−δ₂ j,   (39)

c ⁽⁵⁾=Δ₁ ²+(|r|+Δ ₂)²,   (40)

else the 5th SE solution is

$\begin{matrix} {z^{(5)} = \left\{ \begin{matrix} {{z^{(1)} + \delta_{1} + {\delta_{2}j}},} & {{{{if}\mspace{14mu} 4\Delta_{1}} + {2\; \Delta_{2}}} > {r}} \\ {{z^{(1)} - \delta_{1}},} & {o.w.} \end{matrix} \right.} & (41) \\ {c^{(5)} = \left\{ \begin{matrix} {{\left( {{r} - \Delta_{1}} \right)^{2} + \left( {{r} - \Delta_{2}} \right)^{2}},} & {{{{if}\mspace{14mu} 4\; \Delta_{1}} + {2\; \Delta_{2}}} > {r}} \\ {{\left( {{r} + \Delta_{1}} \right)^{2} + \Delta_{2}^{2}},} & {o.w.} \end{matrix} \right.} & (42) \end{matrix}$

FIG. 10 provides an illustration of the 5th SE solution when 2Δ₁+4Δ₂<|r|, where possible solutions for the 5^(th) are illustrated by x sign.

Proposition 7

If 4Δ₁+2Δ₂<|r|, the 6th SE solution may be determined as follows:

z ⁽⁶⁾ =z ⁽¹⁾+δ₁+δ₂ j,   (43)

c ⁽⁶⁾=(|r|−Δ ₁)²+(|r|−Δ ₂)²,   (44)

else the 6th SE solution is

$\begin{matrix} {z^{(6)} = \left\{ \begin{matrix} {{z^{(1)} + \delta_{1} + {\delta_{2}j}},} & {{{{if}\mspace{14mu} 4\Delta_{1}} + {2\; \Delta_{2}}} > {r}} \\ {{z^{(1)} - \delta_{1}},} & {o.w.} \end{matrix} \right.} & (45) \\ {c^{(6)} = \left\{ \begin{matrix} {{\left( {{r} - \Delta_{1}} \right)^{2} + \left( {{r} + \Delta_{2}} \right)^{2}},} & {{{{if}\mspace{14mu} 4\; \Delta_{1}} + {2\; \Delta_{2}}} > {r}} \\ {{\left( {{r} + \Delta_{1}} \right)^{2} + \Delta_{2}^{2}},} & {o.w.} \end{matrix} \right.} & (46) \end{matrix}$

FIG. 11 provides an illustration of the 6th SE solution when 4Δ₁+2Δ₂>|r|, where the possible solutions for the 6^(th) are illustrated by x sign.

With regard to propositions 4-7, the first 6 SE solutions may be uniquely determined by the following conditions: Δ₁

Δ₂, 2Δ₁+4Δ₂

|r|, 4Δ₁+2Δ₂

|r|, 4Δ₁−2Δ₂

|r|, and 2Δ₁−4Δ₂

|r|. According to the disclosed technology, the multiplications with 2 and 4 may be implemented as shifting operations. As such, all these conditions may be efficiently checked in hardware implementation.

Proposition 8

The 7th SE solution may be determined as follows:

$\begin{matrix} {z^{(7)} = \left\{ \begin{matrix} {{z^{(1)} - \delta_{1}},} & {{{{if}\mspace{14mu} 4\Delta_{1}} + {2\; \Delta_{2}}} > {r}} \\ {{z^{(1)} + \delta_{1} + {\delta_{2}j}},} & {o.w.} \end{matrix} \right.} & (47) \\ {c^{(7)} = \left\{ \begin{matrix} {{\left( {{r} + \Delta_{1}} \right)^{2} + \Delta_{2}^{2}},} & {{{{if}\mspace{14mu} 4\; \Delta_{1}} + {2\; \Delta_{2}}} > {r}} \\ {{\left( {{r} - \Delta_{1}} \right)^{2} + \left( {{r} - \Delta_{2}} \right)^{2}},} & {o.w.} \end{matrix} \right.} & (48) \end{matrix}$

Proposition 9

The 8th SE solution may be determined as follows:

$\begin{matrix} {z^{(8)} = \left\{ \begin{matrix} {{z^{(1)} + \delta_{1}},} & {{{if}\mspace{14mu} {r}} < {{3\; \Delta_{1}} - \Delta_{2}}} \\ {{z^{(1)} - \delta_{1} + {\delta_{2}j}},} & {o.w.} \end{matrix} \right.} & (49) \\ {c^{(8)} = \left\{ \begin{matrix} {{\left( {{2{r}} - \Delta_{1}} \right)^{2} + \Delta_{2}^{2}},} & {{{if}\mspace{14mu} {r}} < {{3\; \Delta_{1}} - \Delta_{2}}} \\ {{\left( {{r} + \Delta_{1}} \right)^{2} + \left( {{r} - \Delta_{2}} \right)^{2}},} & {o.w.} \end{matrix} \right.} & (50) \end{matrix}$

FIG. 12 illustrates a decision boundary of the 8th SE solution, where the 7th SE solution is in solid circles, and the possible solutions for the 8th are shown by x sign.

Proposition 10

If |r|<3Δ₁−Δ₂, then the 9th SE solution may be determined as follows:

z ⁽⁹⁾ =z ⁽¹⁾−δ₁+δ₂ j,   (51)

c ⁽⁹⁾=(|r|+Δ ₁)²+(|r|−Δ ₂)²,   (52)

else the 9th SE solution is given by

$\begin{matrix} {z^{(9)} = \left\{ \begin{matrix} {{z^{(1)} + {2\; \delta_{1}}},} & {{{if}\mspace{14mu} {r}} < {{3\; \Delta_{1}} + \Delta_{2}}} \\ {{z^{(1)} - \delta_{1} - {\delta_{2}j}},} & {o.w.} \end{matrix} \right.} & (53) \\ {c^{(9)} = \left\{ \begin{matrix} {{\left( {{2{r}} - \Delta_{1}} \right)^{2} + \Delta_{2}^{2}},} & {{{if}\mspace{14mu} {r}} < {{3\; \Delta_{1}} + \Delta_{2}}} \\ {{\left( {{r} + \Delta_{1}} \right)^{2} + \left( {{r} + \Delta_{2}} \right)^{2}},} & {o.w.} \end{matrix} \right.} & (54) \end{matrix}$

FIG. 13 provides an illustration of a decision boundary of the 9th SE solution when |r|>3Δ₁−Δ₂, where the 8^(th) SE solution is shown by solid circles, and the possible solutions for the 9^(th) are shown by x sign.

It is noted that the disclosed technology described above may be further applied to obtain the kth (k>9) SE solutions.

6 Hardware Implementation and Synthesized Results

Various embodiments of the SE methods of the disclosed technology may be implemented in MIMO communication systems. According to one embodiment of the disclosed technology, the SE methods described herein may be implemented with hardware, such as a VLSI implementation. In some instances, an integrated circuit that implements the SE methods may be part of a MIMO communication system. According to another embodiment of the disclosed technology, the SE methods described herein may be implemented with software on a reconfigurable processor.

In some embodiments of the disclosed invention, the various SE methods may be implemented as logic instructions stored on memory that can be executed by a processor. The instructions can be configured to cause the system to perform the various steps of the various SE methods described herein.

An exemplary embodiment of the disclosed invention may provide a MIMO communication system comprising a plurality of input terminals, a processor, and logic. The various embodiments of the disclosed technology may comprise many types of input terminals capable of receiving an input signal, including, but not limited to, radio-frequency signals, electromagnetic signals, optical signals, and the like. The input terminals can be many input terminals known in the art. In an exemplary embodiment of the disclosed technology, the input terminals comprise antennas. The logic may be stored in memory. The memory may be many types of memory known in the art. In an exemplary embodiment of the disclosed invention, the logic may be stored in a non-transitory computer readable media. In various embodiments of the disclosed invention, the processor may be configured to execute the logic. When executed, the logic may be configured to cause the MIMO system to perform one or more of the steps of the SE methods described herein.

6.1 Implementation for MR1 and MR2

According to some aspects of the disclosed technology, SE methods illustrated in Tables 1-5 may be implemented in Verilog. VLSI implementations of the SE methods may be synthesized on Xilinx XC7VX690T-2FFG1761C FPGA board. The implementations may be synthesized using Xilinx XST. All the methods discussed herein may be implemented in the form of combinatorial logic. Tables 8-9 list the maximum frequencies (1/latencies of all logics) of the SE methods discussed herein after place and route. In Tables 8-9, the fixed-point setting for all real numbers (e.g., c^((n)), A^((n)), B^((n))) are in the form of [a,b], where a is the length of integer bits and b is the length of fractional bits, while the fixed-point setting for all integer numbers (e.g., z^((n)), s^((n))) are in the form of [a], where a is the length of integer bits. As shown in Tables 8-9, the proposed SE methods of the disclosed technology have about 2-5 times maximum frequency improvement over the original SE method. As shown in Tables 8-9, for p=1, the maximum frequency of the proposed SE method with MR1 may reach 300 MHz, and for p=2, the maximum frequency of the proposed SE method with MR2 may also reach around 300 MHz.

TABLE 8 Maximum achievable frequency of various SE methods for p = 1. Fixed-point setting Original MR1 w.o. EE MR1 with EE MR2  FP [8, 8] INT [8] 163.880 MHz 206.696 MHz 341.646 MHz N/A FP [10, 10] INT [10] 148.942 MHz  196.96 MHz 324.254 MHz N/A FP [16, 16] INT [16] 118.539 MHz 202.922 MHz 288.101 MHz N/A

TABLE 9 Maximum achievable frequency of various SE methods for p = 2. MR1 MR1 Fixed-point setting Original w.o. EE with EE MR2  FP [8, 8] INT [8] 127.080 153.139 212.404 298.685 MHz MHz MHz MHz FP [10, 10] INT [10] 100.603 130.770 172.741 280.662 MHz MHz MHz MHz FP [16, 16] INT [16]  63.946  98.029 118.793 320.924 MHz MHz MHz MHz

6.2 Implementation for l₁ Norm

Different SE methods illustrated in Tables 1 and 7 may be implemented in Verilog. The VLSI implementations may be synthesized on Xilinx XC7VX690T-2FFG1761C FPGA board. The implementations may be synthesized using Xilinx XST. All the methods described herein may be implemented in the form of combinatorial logic. Table 10 lists the maximum frequencies (1/latencies of all logics) after place and route. Similar to Tables 8-9, the fixed-point setting for all real numbers (e.g., c^((n)), A^((n)), B^((n))) are in the form of [a,b], where a is the length of integer bits and b is the length of fractional bits, while the fixed-point setting for all integer numbers (e.g., z^((n)), s^((n))) are in the form of [a], where a is the length of integer bits. As illustrated in Table 10, the proposed fast l₁ SE method has about 3 times maximum frequency improvement over the original SE method. In particular, for p=1, the maximum frequency of the proposed SE method may reach around 400 MHz.

TABLE 10 Maximum achievable frequency of various SE methods. Fixed-point setting Original Proposed Fast SE  FP [8, 8] INT [8] 163.880 MHz 535.906 MHz FP [10, 10] INT [10] 148.942 MHz 442.282 MHz FP [16, 16] INT [16] 118.539 MHz 379.75 z 

FIG. 14 is a flow-diagram 1400 of an example method, in accordance with an exemplary embodiment of the disclosed technology. In block 1402, the method 1400 may include receiving, by a plurality of input terminals, a plurality of input signals. Each input signal may transmit a symbol. In block 1404, the method 1400 may include identifying a list of possible symbols that may be transmitted by each input signal. In block 1406, the method 1400 may include determining a cost value for each possible symbol based on a cost function. The cost function may be implemented without requiring a multiplier. In block 1408, the method 1400 may include identifying the possible symbol with a lowest cost value as the transmitted symbol.

In one example implementation, the cost function may be an l₁ cost function. In another example implementation, the cost function may be an l₂ cost function. In some implementations, the cost function may be based on a recursive equation. In some instances, the cost function may have a real domain. In some examples, the cost function may have a complex domain.

In one example implementation, the l₂ cost function may generate a first 9 complex SE expansions. The method of the disclosed technology may check conditions for the first 9 complex SE expansions. In some example implementations, the checking conditions may be implemented by shifting and addition operations.

According to some aspects of the disclosed technology, the list of possible symbols may be arranged in an ascending order of their cost values.

In one example implementation, the cost function may have a mathematical representation of

c=|y−rz| ^(p),

wherein y is the output, r is a system implementing the SE method, z is an input, c is the cost, and an integer p denotes a l_(p)-norm; wherein when p=1, the above equation is an l₁ cost function; and wherein when p=2, the above equation is an l₂ cost function.

According to some aspects of the disclose technology, multiplication in the cost function may be implemented using a multiplexer. In some instances, multiplication in the cost function may also be implemented using a shift register.

It is to be understood that the embodiments and claims disclosed herein are not limited in their application to the details of construction and arrangement of the components set forth in the description and illustrated in the drawings. Rather, the description and the drawings provide examples of the embodiments envisioned. The embodiments and claims disclosed herein are further capable of other embodiments and of being practiced and carried out in various ways. Also, it is to be understood that the phraseology and terminology employed herein are for the purposes of description and should not be regarded as limiting the claims. For instance, the term ““exemplary” used herein does not mean best mode, but rather, example.

Accordingly, those skilled in the art will appreciate that the conception upon which the application and claims are based may be readily utilized as a basis for the design of other structures, methods, and systems for carrying out the several purposes of the embodiments and claims disclosed in this application. It is important, therefore, that the claims be regarded as including such equivalent constructions.

Furthermore, the purpose of the foregoing Abstract is to enable the public generally, and especially including the practitioners in the art who are not familiar with patent and legal terms or phraseology, to determine quickly from a cursory inspection the nature and essence of the technical disclosure of the application. The Abstract is neither intended to define the claims of the application, nor is it intended to be limiting to the scope of the claims in any way. 

1. A Schnorr-Euchner expansion method for a multiple-input multiple-output communication system, comprising: receiving, by a plurality of input terminals, a plurality of input signals, each input signal containing a symbol; and identifying a list of possible symbols that may be contained in each input signal; determining a cost value for each possible symbol based on a cost function, the cost function being implemented without requiring a multiplier; and identifying the possible symbol with a lowest cost value as the symbol contained in the input signal.
 2. The method of claim 1, wherein the cost function is an l₁ cost function.
 3. The method of claim 1, wherein the cost function is an l₂ cost function.
 4. The method of claim 1, wherein the cost function is based on a recursive equation.
 5. The method of claim 1, wherein the cost function has a real domain.
 6. The method of claim 1, wherein the cost function has a complex domain.
 7. The method of claim 1, wherein the l₂ cost function generates a first 9 complex SE expansions.
 8. The method of claim 7, further comprising checking conditions for the first 9 complex SE expansions.
 9. The method of claim 8, wherein the checking conditions are implemented by shifting and addition operations.
 10. The method of claim 1, wherein the cost function has a mathematical representation of c=|y−rz| ^(p), wherein y is the output, r is a system implementing the SE method, z is an input, c is the cost, and an integer p denotes a l_(p)-norm; wherein when p=1, the above equation is an l₁ cost function; and wherein when p=2, the above equation is an l₂ cost function.
 11. The method of claim 1, wherein multiplication in the cost function is implemented using a multiplexer.
 12. The method of claim 1, wherein multiplication in the cost function is implemented using a shift register.
 13. The method of claim 1, further comprising arranging the list of possible symbols in an ascending order of their cost values.
 14. An apparatus implementing a Schnorr-Euchner expansion method without requiring a multiplier, comprising: a plurality of input terminals each configured to receive a wireless signal; and a processor in connection with the input terminals configured to detect a symbol contained in each wireless signal by: identifying a list of possible symbols that may be contained in the wireless signal; determining a cost value for each possible symbol based on a cost function; and identifying the possible symbol with a lowest cost value as the symbol contained in the wireless signal.
 15. The apparatus of claim 14, wherein the cost function has a real domain.
 16. The apparatus of claim 14, wherein the cost function has a complex domain.
 17. A multiple-input multiple-output communication system, comprising: a plurality of input terminals each configured to receive an input signal; and an integrated circuit implementing an Schnorr-Euchner expansion algorithm without requiring a multiplier, the integrated circuit configured to detect a symbol contained in each input signal by: estimating a list of possible symbols that may be contained in the input signal; determining a cost value for each possible symbol based on a cost function; and identifying the possible symbol with a lowest cost value as the symbol contained in the input signal.
 18. The system of claim 17, wherein the cost function has a real domain.
 19. The system of claim 17, wherein the cost function has a complex domain.
 20. The system of claim 17, wherein multiplication in the cost function is implemented using a multiplexer or a shift register. 